/**
 * 基于layer封装弹窗
 * function msg()
 * msg: 需要提示的内容，必须为字符串，不为字符串则尝试转为字符串
 * option:{
 *  icon: 1,2,3,4,5,6 
 * // 1:绿色的√；一般表示成功
 *    2:红色的x； 一般表示失败
 *    3:黄色的？； 一般表示警告
 *    4:灰色的锁；一般表示。。。
 *    5:红色不高兴的表情；一般表示失败
 *    6:绿色的高兴表情；一般表示成功
 *    7:橙色的！一般表示警告
 *  time: 3000 //
 * }
 * callback: //弹窗关闭以后的回调
 * 
 * function alert()
 * 
 */
import '../lib/jquery-vendor';
import _ from '../lib/lodash-vendor';
require('layui-layer');
const layerService = function () {
  // 轻度的消息提示
  this.msg = function (msg, option, callback) {
    console.log(msg, option, callback)
    // 当msg不为string类型强制转换为string
    if(!_.isString(msg)){
      msg = _.toString(msg);
    }
    // option为function说明配置项缺省
    if(_.isFunction(option)){
      return layer.msg(msg,option);
    }
    // callback不为function说明没有回调函数
    if(_.isObject(option) && !_.isFunction(callback)){
      if(!_.isNumber(option.icon)){
        delete option.icon;
      }else if(option.icon < 0 || option.icon > 7){
        delete option.icon;
      }
      if(!_.isNumber(option.time)){
        delete option.time;
      }else if(option.time < 0 || option.time > 10000){
        delete option.time;
      }
      console.log(option);
      return layer.msg(msg, option);
    }
    // 有回调函数
    if(_.isObject(option) && _.isFunction(callback)){
      layer.msg(msg, option, callback);
    }
  }
  this.alert = function(){
    layer.open({
      type: 1,
      title: '提示',
      // area: 'auto',
      content: '<div>html内容</div><div>1111</div>',
      // shadeClose: false,
      // shade: false
    })
  }
};

export default ngModule => {
  ngModule.service('$layer', layerService);
}